上篇Lab中有用到一個新的Adapter--Olimex ARM-USB-TINY-H!
本篇主要是簡單介紹一下,順便帶出內建的核心晶片FTDI FT2232H,
預計未來會花2~3個篇幅來解說OpenOCD與FT2232H之間溝通的方式!
不過,一樣,還是提醒一下,筆者非硬體背景出身(還在自學中),這部分的架構筆者也還沒說很熟!?
如果有任何錯誤,歡迎留言告知!
先來看看他有什麼功能:
* Debugs all ARM microcontrollers with JTAG interface supported by OpenOCD
* High speed USB 2.0 with lower latency time, RTCK adaptive JTAG clock up to 30Mhz and higher throughput achieve x3-x5 times faster programming speed than ARM-USB-TINY, can be used with all ARM devices for programming and debugging.
.....剩下不重要
--引用自: ARM-USB-TINY-H
如果還記得「Day 07: RISC-V Introduction」中的這張圖(我們只關心上半部的部分):
---引用自RISC-V External Debug Support 0.13
你就會發現這個"Debug Transport Hardware"的前半段是接PC,後半段是接Target上的Debug Transport Module (DTM),也就是說,前半部是用USB跟PC溝通,而後半部是用JTAG跟Target溝通,而這個ARM-USB-TINY-H Adapter的主要功用就是將USB轉成JTAG!
再來看一下"JTAG connector layout"的部分:
---引用自ARM-USB-TINY-H JTAG connector layout
你可以發現他是一個標準的JTAG介面,可以直接輸入Target端中的Debug Transport Module,並支援SRST、TRST、RTCK等功能!
再來就不得不提到ARM-USB-TINY-H中的核心晶片--FT2232H!
一樣先來看一下主要功能:
* USB 2.0 High Speed (480Mbits/Second) and Full Speed (12Mbits/Second) compatible.
* Dual Multi-Protocol Synchronous Serial Engine (MPSSE) to simplify synchronous serial protocol (USB to JTAG, I2C, SPI or bit-bang) design.
....後面不重要
大概就是這樣,講完了!
簡單的說,在這邊主要是透過該晶片所提供的MPSSE(Multi-Protocol Synchronous Serial Engine)技術,將USB 2.0 High Speed訊號(這邊用的是FT2232H),轉成JTAG、SPI、或是其他等等同步序列協議!
當然,這邊主要是使用JTAG協議!
再來介紹一下架構圖的部分:
---引用自FT2232H Hi-Speed Dual USB UART/FIFO IC Data Sheet
雖然該晶片提供雙通道的輸出,可以分別當作JTAG、UART等等來使用,不過由於這邊僅需一個JTAG通道,故不需要考慮下半部的部分!
從這個架構圖中可以看到,除了自帶一個EEPROM可以用來儲存包含VID、PID、USB String Descriptors等等資料外,最重要的部分就是黃色框起來的地方,分別是USB Protocol的Controller和MPSSE的Controller,後續的文章中,將會專文介紹到MPSSE的Command Processor!
主要功能解說如下:
題外話,Arty板子上也有內建FT2232的晶片,主要是透過FT2232將其連接至板子上的FPGA和SRAM的部分;透過這條通路,可以燒錄所需要的Netlist到板子上,這樣就不需要額外準備FPGA專用的Download Cable!
經過前面幾篇塞好塞滿之後,這篇終於可以稍微喘息一下!
單純是用來銜接前後兩個系列的部分,各位看官可以放輕鬆一下!
QQ,我買了 Arty 之後只有燒錄過兩次...
自從FTDI的Driver被我蓋掉後,Vivado完全抓不到Arty板子,害我還要另外找Download Cable去燒錄........XD